/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package szerelomuhelynyilvantartas;

import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

/**
 *
 * @author csatari
 */
public final class AnyagMenü extends JFrame implements TételMenü {
    Anyag anyag = null;
    int munkalapIndex;
    int anyagIndex=-1;
    JTextField név = new JTextField(50);
    JTextField mennyiség = new JTextField(15);
    JTextField egységÁr = new JTextField(15);
    JButton ok = new JButton("Ok");
    JLabel ár = new JLabel();
    public AnyagMenü(int munkalapIndex) {
        this.munkalapIndex = munkalapIndex;
        rajzolMenü();
    }
    public AnyagMenü(int munkalapIndex, Anyag anyag, int anyagIndex) {
        this.anyag = anyag;
        this.munkalapIndex = munkalapIndex;
        this.anyagIndex = anyagIndex;
        rajzolMenü();
        adatBeállítás();
    }

    
    @Override
    public void rajzolMenü() {
        if(anyag!=null) {
            setTitle("Anyag szerkesztése");
        }
        else {
            setTitle("Új Anyag");
        }
        setSize(new Dimension(200, 175));
        setDefaultCloseOperation(DISPOSE_ON_CLOSE);
        setLocationRelativeTo(null);
        JPanel panel = new JPanel();
        panel.setLayout(new BorderLayout(10,0));
        
        JPanel centerPanel = new JPanel();
        centerPanel.setLayout(new GridLayout(0,2));
        centerPanel.setPreferredSize(new Dimension(100,100));
        
        centerPanel.add(new JLabel("Név:"));
        centerPanel.add(név);
        centerPanel.add(new JLabel("Mennyiség:"));
        centerPanel.add(mennyiség);
        centerPanel.add(new JLabel("Egységár:"));
        centerPanel.add(egységÁr);
        centerPanel.add(new JLabel("Teljes ár:"));
        centerPanel.add(ár);
        JLabel főcím = new JLabel("Anyag");
        főcím.setAlignmentX(Component.CENTER_ALIGNMENT);
        panel.add(főcím,BorderLayout.PAGE_START);
        panel.add(ok,BorderLayout.PAGE_END);
        panel.add(centerPanel,BorderLayout.CENTER);
        
        ok.addActionListener(new HozzáadListener());
        mennyiség.addKeyListener(new FrissítListener());
        egységÁr.addKeyListener(new FrissítListener());
        
        add(panel);
    }
    @Override
    public void adatBeállítás() {
        if(anyagIndex != -1) {
            név.setText(anyag.getNév());
            mennyiség.setText(Integer.toString(anyag.getMennyiség()));
            egységÁr.setText(Integer.toString(anyag.getDarabÁr()));
            ár.setText(Integer.toString(anyag.getÁr())+" Ft");
        }
    }
    private class HozzáadListener implements ActionListener {

        @Override
        public void actionPerformed(ActionEvent e) {
            int mennyiségMent;
            int egységÁrMent;
            try {
                mennyiségMent = Integer.parseInt(mennyiség.getText());
                egységÁrMent = Integer.parseInt(egységÁr.getText());
                if(mennyiségMent < 0) {
                    mennyiségMent = 0;
                }
                if(egységÁrMent < 0) {
                    egységÁrMent = 0;
                }
            }
            catch(NumberFormatException ex) {
                mennyiségMent = 0;
                egységÁrMent = 0;
            }
            
            if(anyag == null) {
                anyag = new Anyag(név.getText(),mennyiségMent,egységÁrMent);
                SzereloMuhelyNyilvantartas.munkalapok.get(munkalapIndex).hozzáad(anyag);
            }
            else {
                anyag.setNév(név.getText());
                anyag.setMennyiség(mennyiségMent);
                anyag.setDarabÁr(egységÁrMent);
                SzereloMuhelyNyilvantartas.munkalapok.get(munkalapIndex).setTétel(anyagIndex, anyag);
            }
            dispose();
        }
    }
    private class FrissítListener implements KeyListener {

        @Override
        public void keyTyped(KeyEvent e) {
        }

        @Override
        public void keyPressed(KeyEvent e) {
        }

        @Override
        public void keyReleased(KeyEvent e) {
            int mennyiség_;
            int egységÁr_;
            try {
                mennyiség_ = Integer.parseInt(mennyiség.getText());
                egységÁr_ = Integer.parseInt(egységÁr.getText());
                if(mennyiség_ < 0 || egységÁr_ < 0) {
                    mennyiség_ = 0;
                    egységÁr_ = 0;
                }
            }
            catch(NumberFormatException ex) {
                mennyiség_ = 0;
                egységÁr_ = 0;
            }
            ár.setText(Integer.toString(mennyiség_*egységÁr_)+" Ft");
        }
    }
}
